Skip to content

AI:suggest and tests#10

Merged
DimaRus05 merged 6 commits intohse-project-Java-2025:mainfrom
UsatovPavel:Usatov/feature/ai/suggest-and-tests
Jan 24, 2026
Merged

AI:suggest and tests#10
DimaRus05 merged 6 commits intohse-project-Java-2025:mainfrom
UsatovPavel:Usatov/feature/ai/suggest-and-tests

Conversation

@UsatovPavel
Copy link
Contributor

Added ChatGPTApi endpoint suggestions (for text and audio).
Difference from endpoint entices — prompt includes free time slots instead of existing events(GPT hallucinations).
New DB query to find events by date (instead of iterating).
Implemented EventDistributorService (fixes GPT responses and ensures no scheduling conflicts).
Added FormatterUtils for formatting data for prompt.

Unit tests (Mockito) and integration tests (RestTemplate).
Tests with real OpenAI API: audio processing and GPT.
Removed tasks from ChatGPT API(not used in client, GPT hallucinations); improved task type detection.

docker-compose.yaml и Dockerfile для запуска приложения в контейнере. В Docker используется Postgresql. JWT_SECRET и CHATGPT_API_KEY передаются через файл .env в общей папке.
spring.sql.init.mode=never в test-properties и там где properties т.к. в Docker таблицы пересоздавались hibernate

Удалил data.sql и sqema.sql, их логика в DataInitializer, теперь hibernate полностью сам генерирует таблицы.

Использование: для удаления базы и рестарта: скрипт на shell,
для запуска контейнера: через плагин docker отдельная конфигурация в idea.
Искал причины не работы аудио, добился того что сервер возвращает корректный ответ на запрос.
Логировал данные, ключ Chat_API поменял на тот что с 4o-transcriptions работает, хотя на данный момент это не нужно.
Добавил тесты использующие реальное OpenAI API: первые через REST API проверят обработку аудиофайлов(они в resources) сервером, вторые корректность service.
Для них отдельные test-real.properties

Убрал tasks из ChatGPT т.к. не используются на клиенте и возникала при обработке сервера путаница events с tasks.
Улучшил распознование промтом типа задания.
Добавил в ChatGPTApi suggestions: по аудио/тексту пользователь получает набор задач.От entices отличается тем, что в промпте отправляются не существующие ивенты, а список свободных интервалов(иначе ии отправляло существующие). Добавлен запрос в DB для поиска ивентов по дате - до этого вроде все перебирались через sort.
EventDistributorService для GPT предоставляет данные и исправляет от него. placeEvents гарантирует, что все сгенерированные suggestions не будут с временем противоречить
FormatterUtils - для преобразования в промпт данных

EventDistributorService и новые методы в GPT Controller и Service протестированы(через Mockito и RestTemplate).
About Docker and tests in README
Use modern docker in scripts
@UsatovPavel UsatovPavel force-pushed the Usatov/feature/ai/suggest-and-tests branch from 5f6b5b2 to 6184c5f Compare January 23, 2026 21:50
@DimaRus05 DimaRus05 merged commit c3f439d into hse-project-Java-2025:main Jan 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants